package com.ourteam.product.requirement.domain;

import net.dao.IDataPopulateCallback;

import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.lang.ArrayUtils;

import java.util.HashMap;

/**
 * Template Name : DTO数据对象
 * Template Version : 1
 * Template Last Modfiy Date : Tue Nov 07 10:29:34 CST 2017
 * Auto Generate Date : 2018-05-03 16:46:00
  * Warning ! This file will be overwrite when regenerate !
  *
 */
import java.util.Map;


public class ProductIssueBean implements java.io.Serializable {
    private static Map<String, String> mappedDaoFields = new HashMap<String, String>();

    static {
        mappedDaoFields.put("id",
            com.ourteam.product.requirement.dao.IProductIssueDAO.Id);

        mappedDaoFields.put("productDefineId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.ProductDefineId);

        mappedDaoFields.put("productVersionId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.ProductVersionId);

        mappedDaoFields.put("issueCode",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueCode);

        mappedDaoFields.put("issueType",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueType);

        mappedDaoFields.put("issueTitle",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueTitle);

        mappedDaoFields.put("issueContent",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueContent);

        mappedDaoFields.put("issuePriority",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssuePriority);

        mappedDaoFields.put("submitUserId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.SubmitUserId);

        mappedDaoFields.put("submitTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.SubmitTime);

        mappedDaoFields.put("assignUserId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.AssignUserId);

        mappedDaoFields.put("assignTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.AssignTime);

        mappedDaoFields.put("planSolveTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.PlanSolveTime);

        mappedDaoFields.put("actualSolveTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.ActualSolveTime);

        mappedDaoFields.put("resolutions",
            com.ourteam.product.requirement.dao.IProductIssueDAO.Resolutions);

        mappedDaoFields.put("resolutionsRemarks",
            com.ourteam.product.requirement.dao.IProductIssueDAO.ResolutionsRemarks);

        mappedDaoFields.put("lastUpdateTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.LastUpdateTime);

        mappedDaoFields.put("lastUpdateUserId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.LastUpdateUserId);

        mappedDaoFields.put("issueNoteCount",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueNoteCount);

        mappedDaoFields.put("issueAttachCount",
            com.ourteam.product.requirement.dao.IProductIssueDAO.IssueAttachCount);

        mappedDaoFields.put("status",
            com.ourteam.product.requirement.dao.IProductIssueDAO.Status);

        mappedDaoFields.put("remarks",
            com.ourteam.product.requirement.dao.IProductIssueDAO.Remarks);

        mappedDaoFields.put("creatorName",
            com.ourteam.product.requirement.dao.IProductIssueDAO.CreatorName);

        mappedDaoFields.put("creatorId",
            com.ourteam.product.requirement.dao.IProductIssueDAO.CreatorId);

        mappedDaoFields.put("createTime",
            com.ourteam.product.requirement.dao.IProductIssueDAO.CreateTime);

        mappedDaoFields.put("creatorPhoto",
            com.ourteam.product.requirement.dao.IProductIssueDAO.CreatorPhoto);
    }

    private com.ourteam.product.requirement.dao.ProductIssue productIssue;

    public ProductIssueBean() {
        super();

        this.productIssue = new com.ourteam.product.requirement.dao.ProductIssue();
    }

    public ProductIssueBean(
        com.ourteam.product.requirement.dao.ProductIssue productIssue) {
        super();

        this.productIssue = productIssue;
    }

    public BeanMap getBeanMap() {
        return new BeanMap(productIssue);
    }

    public static String getMappedDAOField(String aAttrName) {
        return mappedDaoFields.get(aAttrName);
    }

    public com.ourteam.product.requirement.dao.ProductIssue convertToProductIssue() {
        return this.productIssue;
    }

    public com.ourteam.product.requirement.dao.ProductIssue convertTo() {
        return this.productIssue;
    }

    /**
     * Get id
     *
     * @return long
     */
    public long getId() {
        return (long) this.productIssue.getId();
    }

    /**
     * Set id
     *
     * @parameter long
     */
    public void setId(long id) {
        this.productIssue.setId(id);
    }

    /**
     * Get productDefineId
     *
     * @return long
     */
    public long getProductDefineId() {
        return (long) this.productIssue.getProductDefineId();
    }

    /**
     * Set productDefineId
     *
     * @parameter long
     */
    public void setProductDefineId(long productDefineId) {
        this.productIssue.setProductDefineId(productDefineId);
    }

    /**
     * Get productVersionId
     *
     * @return long
     */
    public long getProductVersionId() {
        return (long) this.productIssue.getProductVersionId();
    }

    /**
     * Set productVersionId
     *
     * @parameter long
     */
    public void setProductVersionId(long productVersionId) {
        this.productIssue.setProductVersionId(productVersionId);
    }

    /**
     * Get issueCode
     *
     * @return String
     */
    public String getIssueCode() {
        return (String) this.productIssue.getIssueCode();
    }

    /**
     * Set issueCode
     *
     * @parameter String
     */
    public void setIssueCode(String issueCode) {
        this.productIssue.setIssueCode(issueCode);
    }

    /**
     * Get issueType
     *
     * @return String
     */
    public String getIssueType() {
        return (String) this.productIssue.getIssueType();
    }

    /**
     * Set issueType
     *
     * @parameter String
     */
    public void setIssueType(String issueType) {
        this.productIssue.setIssueType(issueType);
    }

    /**
     * Get issueTitle
     *
     * @return String
     */
    public String getIssueTitle() {
        return (String) this.productIssue.getIssueTitle();
    }

    /**
     * Set issueTitle
     *
     * @parameter String
     */
    public void setIssueTitle(String issueTitle) {
        this.productIssue.setIssueTitle(issueTitle);
    }

    /**
     * Get issueContent
     *
     * @return String
     */
    public String getIssueContent() {
        return (String) this.productIssue.getIssueContent();
    }

    /**
     * Set issueContent
     *
     * @parameter String
     */
    public void setIssueContent(String issueContent) {
        this.productIssue.setIssueContent(issueContent);
    }

    /**
     * Get issuePriority
     *
     * @return String
     */
    public String getIssuePriority() {
        return (String) this.productIssue.getIssuePriority();
    }

    /**
     * Set issuePriority
     *
     * @parameter String
     */
    public void setIssuePriority(String issuePriority) {
        this.productIssue.setIssuePriority(issuePriority);
    }

    /**
     * Get submitUserId
     *
     * @return long
     */
    public long getSubmitUserId() {
        return (long) this.productIssue.getSubmitUserId();
    }

    /**
     * Set submitUserId
     *
     * @parameter long
     */
    public void setSubmitUserId(long submitUserId) {
        this.productIssue.setSubmitUserId(submitUserId);
    }

    /**
     * Get submitTime
     *
     * @return java.util.Date
     */
    public java.util.Date getSubmitTime() {
        return (java.util.Date) this.productIssue.getSubmitTime();
    }

    /**
     * Set submitTime
     *
     * @parameter java.util.Date
     */
    public void setSubmitTime(java.util.Date submitTime) {
        this.productIssue.setSubmitTime(submitTime);
    }

    /**
     * Get assignUserId
     *
     * @return long
     */
    public long getAssignUserId() {
        return (long) this.productIssue.getAssignUserId();
    }

    /**
     * Set assignUserId
     *
     * @parameter long
     */
    public void setAssignUserId(long assignUserId) {
        this.productIssue.setAssignUserId(assignUserId);
    }

    /**
     * Get assignTime
     *
     * @return java.util.Date
     */
    public java.util.Date getAssignTime() {
        return (java.util.Date) this.productIssue.getAssignTime();
    }

    /**
     * Set assignTime
     *
     * @parameter java.util.Date
     */
    public void setAssignTime(java.util.Date assignTime) {
        this.productIssue.setAssignTime(assignTime);
    }

    /**
     * Get planSolveTime
     *
     * @return java.util.Date
     */
    public java.util.Date getPlanSolveTime() {
        return (java.util.Date) this.productIssue.getPlanSolveTime();
    }

    /**
     * Set planSolveTime
     *
     * @parameter java.util.Date
     */
    public void setPlanSolveTime(java.util.Date planSolveTime) {
        this.productIssue.setPlanSolveTime(planSolveTime);
    }

    /**
     * Get actualSolveTime
     *
     * @return java.util.Date
     */
    public java.util.Date getActualSolveTime() {
        return (java.util.Date) this.productIssue.getActualSolveTime();
    }

    /**
     * Set actualSolveTime
     *
     * @parameter java.util.Date
     */
    public void setActualSolveTime(java.util.Date actualSolveTime) {
        this.productIssue.setActualSolveTime(actualSolveTime);
    }

    /**
     * Get resolutions
     *
     * @return String
     */
    public String getResolutions() {
        return (String) this.productIssue.getResolutions();
    }

    /**
     * Set resolutions
     *
     * @parameter String
     */
    public void setResolutions(String resolutions) {
        this.productIssue.setResolutions(resolutions);
    }

    /**
     * Get resolutionsRemarks
     *
     * @return String
     */
    public String getResolutionsRemarks() {
        return (String) this.productIssue.getResolutionsRemarks();
    }

    /**
     * Set resolutionsRemarks
     *
     * @parameter String
     */
    public void setResolutionsRemarks(String resolutionsRemarks) {
        this.productIssue.setResolutionsRemarks(resolutionsRemarks);
    }

    /**
     * Get lastUpdateTime
     *
     * @return java.util.Date
     */
    public java.util.Date getLastUpdateTime() {
        return (java.util.Date) this.productIssue.getLastUpdateTime();
    }

    /**
     * Set lastUpdateTime
     *
     * @parameter java.util.Date
     */
    public void setLastUpdateTime(java.util.Date lastUpdateTime) {
        this.productIssue.setLastUpdateTime(lastUpdateTime);
    }

    /**
     * Get lastUpdateUserId
     *
     * @return long
     */
    public long getLastUpdateUserId() {
        return (long) this.productIssue.getLastUpdateUserId();
    }

    /**
     * Set lastUpdateUserId
     *
     * @parameter long
     */
    public void setLastUpdateUserId(long lastUpdateUserId) {
        this.productIssue.setLastUpdateUserId(lastUpdateUserId);
    }

    /**
     * Get issueNoteCount
     *
     * @return long
     */
    public long getIssueNoteCount() {
        return (long) this.productIssue.getIssueNoteCount();
    }

    /**
     * Set issueNoteCount
     *
     * @parameter long
     */
    public void setIssueNoteCount(long issueNoteCount) {
        this.productIssue.setIssueNoteCount(issueNoteCount);
    }

    /**
     * Get issueAttachCount
     *
     * @return long
     */
    public long getIssueAttachCount() {
        return (long) this.productIssue.getIssueAttachCount();
    }

    /**
     * Set issueAttachCount
     *
     * @parameter long
     */
    public void setIssueAttachCount(long issueAttachCount) {
        this.productIssue.setIssueAttachCount(issueAttachCount);
    }

    /**
     * Get status
     *
     * @return String
     */
    public String getStatus() {
        return (String) this.productIssue.getStatus();
    }

    /**
     * Set status
     *
     * @parameter String
     */
    public void setStatus(String status) {
        this.productIssue.setStatus(status);
    }

    /**
     * Get remarks
     *
     * @return String
     */
    public String getRemarks() {
        return (String) this.productIssue.getRemarks();
    }

    /**
     * Set remarks
     *
     * @parameter String
     */
    public void setRemarks(String remarks) {
        this.productIssue.setRemarks(remarks);
    }

    /**
     * Get creatorName
     *
     * @return String
     */
    public String getCreatorName() {
        return (String) this.productIssue.getCreatorName();
    }

    /**
     * Get creatorId
     *
     * @return long
     */
    public long getCreatorId() {
        return (long) this.productIssue.getCreatorId();
    }

    /**
     * Set creatorId
     *
     * @parameter long
     */
    public void setCreatorId(long creatorId) {
        this.productIssue.setCreatorId(creatorId);
    }

    /**
     * Get createTime
     *
     * @return java.util.Date
     */
    public java.util.Date getCreateTime() {
        return (java.util.Date) this.productIssue.getCreateTime();
    }

    /**
     * Set createTime
     *
     * @parameter java.util.Date
     */
    public void setCreateTime(java.util.Date createTime) {
        this.productIssue.setCreateTime(createTime);
    }

    /**
     * Get creatorPhoto
     *
     * @return String
     */
    public String getCreatorPhoto() {
        return (String) this.productIssue.getCreatorPhoto();
    }

    public int hashCode() {
        return org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(this);
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        } // end if

        if ((obj instanceof ProductIssueBean) == false) {
            return false;
        } // end if

        ProductIssueBean other = (ProductIssueBean) obj;

        boolean isEqual = false;

        com.ourteam.product.requirement.dao.ProductIssue tempProductIssue = other.convertToProductIssue();

        if ((tempProductIssue == null) || (this.productIssue == null)) {
            isEqual = false;
        } else if ((tempProductIssue == this.productIssue) ||
                tempProductIssue.equals(this.productIssue)) {
            isEqual = true;
        } else {
            isEqual = false;
        }

        return isEqual;
    }

    public static ProductIssueBean[] toArray(
        com.ourteam.product.requirement.dao.ProductIssue[] aProductIssues) {
        return toArray(aProductIssues, null);
    }

    public static ProductIssueBean[] toArray(
        com.ourteam.product.requirement.dao.ProductIssue[] aProductIssues,
        IDataPopulateCallback aCallBack) {
        if (ArrayUtils.isEmpty(aProductIssues)) {
            return new ProductIssueBean[0];
        }

        int length = aProductIssues.length;

        ProductIssueBean[] beans = new ProductIssueBean[length];

        for (int i = 0; i < length; i++) {
            beans[i] = new ProductIssueBean(aProductIssues[i]);

            if (aCallBack != null) {
                aCallBack.populate(beans[i], new Object[] { aProductIssues[i] });
            }
        }

        return beans;
    }
}
